home *** CD-ROM | disk | FTP | other *** search
/ Level 2005 Christmas (DVD) / Level_2005-XMAS_134_DVD_Knightshift.iso / Demos / Ski Racing 2006 / setup1.cab / DataCommonShadersGlow.NSF < prev    next >
Encoding:
Text File  |  2005-11-03  |  30.5 KB  |  831 lines

  1. // NUMERICAL DESIGN LIMITED PROPRIETARY INFORMATION
  2. //
  3. // This software is supplied under the terms of a license agreement or
  4. // nondisclosure agreement with Numerical Design Limited and may not 
  5. // be copied or disclosed except in accordance with the terms of that 
  6. // agreement.
  7. //
  8. //      Copyright (c) 1996-2004 Numerical Design Limited.
  9. //      All Rights Reserved.
  10. //
  11. // Numerical Design Limited, Chapel Hill, North Carolina 27514
  12. // http://www.ndl.com
  13.  
  14. // Glow shader file.
  15. // This shader is used to implement the Glow effect from 
  16. // nVidia's Cg Browser.
  17. //
  18.  
  19. NSFShader GlowElements
  20. {
  21.     "This shader renders the object by modulating the
  22.      base texture color by its alpha value.  This is a
  23.      component of nVidia's Glow effect, in which the 
  24.      alpha of a texture indicates how brightly an object
  25.      is glowing.  It uses no shaders."
  26.      
  27.     // Packing Definition
  28.     PackingDef PosTexCoord
  29.     {
  30.         PD_FixedFunction true
  31.         PD_Stream   0
  32.             PDP_Position    0   PDT_Float3
  33.             PDP_TexCoord0   7   PDT_Float2
  34.     }
  35.     
  36.     // Implementation
  37.     Implementation GlowElements
  38.     {
  39.         "This implementation works without shaders"
  40.         
  41.         // Requirements for this implementation
  42.         Requirements
  43.         {
  44.             Platform            = DX8|DX9
  45.             VSVersion           = v0.0
  46.             UserVersion         = v0.0
  47.             PSVersion           = v0.0
  48.             UsesNiRenderState   = true
  49.         }
  50.         
  51.         // Packing Definition it uses
  52.         PackingDef  PosTexCoord
  53.         
  54.         // 'Global' render states
  55.         RenderStates
  56.         {
  57.             Lighting            = false
  58.             AlphaBlendEnable    = true
  59.         TextureFactor       = 0xF2F2F2F2
  60.         //TextureFactor       = 0x02020202
  61.  
  62.      }
  63.  
  64.         Pass Glow
  65.         {
  66.             Stage 0 Base
  67.             {
  68.                 TSS_ColorOp     = TOP_Modulate
  69.                 TSS_ColorArg1   = TA_Texture TA_AlphaReplicate        
  70.                 TSS_ColorArg2   = TA_Texture
  71.             }
  72.  
  73.             Sampler 0
  74.             {
  75.                 TSS_Texture     = NTM_Base          
  76.                 //TSAMP_AddressU  = TADDR_Clamp
  77.                 //TSAMP_AddressV  = TADDR_Clamp
  78.                 TSAMP_AddressU  = TADDR_Wrap
  79.                 TSAMP_AddressV  = TADDR_Wrap
  80.                 TSAMP_AddressW  = TADDR_Wrap
  81.                 
  82.             TSAMP_MagFilter = TEXF_Linear
  83.                 TSAMP_MinFilter = TEXF_Linear
  84.                 TSAMP_MipFilter = TEXF_Linear
  85.             }
  86.         
  87.             Stage 1 Attenuate
  88.             {
  89.                 TSS_ColorOp     = TOP_Modulate
  90.                 TSS_ColorArg1   = TA_Current
  91.                 TSS_ColorArg2   = TA_TFactor
  92.             }
  93.         
  94.         }
  95.     }
  96. }
  97.  
  98. NSFShader Blur
  99. {
  100.     "This shader performs the Gaussian Blur used by nVidia's 
  101.      Glow effect.  It uses Cg shaders."
  102.     
  103.     // Attribute list
  104.     Global_Attributes
  105.     {
  106.         Attrib_Point4   Zero        Hidden  0.0, 0.0, 0.0, 0.0
  107.         // Pass 0 constants
  108.         Attrib_Point4   T0_Offset0  Hidden  0.0, 0.0, 0.0, 0.0
  109.         Attrib_Point4   T1_Offset0  Hidden  0.0, 0.0, 0.0, 0.0
  110.         Attrib_Point4   T2_Offset0  Hidden  0.0, 0.0, 0.0, 0.0
  111.         Attrib_Point4   T3_Offset0  Hidden  0.0, 0.0, 0.0, 0.0
  112.         Attrib_Point4   Weight00    Hidden  0.0, 0.0, 0.0, 0.0
  113.         Attrib_Point4   Weight10    Hidden  0.0, 0.0, 0.0, 0.0
  114.         Attrib_Point4   Weight20    Hidden  0.0, 0.0, 0.0, 0.0
  115.         Attrib_Point4   Weight30    Hidden  0.0, 0.0, 0.0, 0.0
  116.         // Pass 1 constants
  117.         Attrib_Point4   T0_Offset1  Hidden  0.0, 0.0, 0.0, 0.0
  118.         Attrib_Point4   T1_Offset1  Hidden  0.0, 0.0, 0.0, 0.0
  119.         Attrib_Point4   T2_Offset1  Hidden  0.0, 0.0, 0.0, 0.0
  120.         Attrib_Point4   T3_Offset1  Hidden  0.0, 0.0, 0.0, 0.0
  121.         Attrib_Point4   Weight01    Hidden  0.0, 0.0, 0.0, 0.0
  122.         Attrib_Point4   Weight11    Hidden  0.0, 0.0, 0.0, 0.0
  123.         Attrib_Point4   Weight21    Hidden  0.0, 0.0, 0.0, 0.0
  124.         Attrib_Point4   Weight31    Hidden  0.0, 0.0, 0.0, 0.0
  125.         // Pass 2 constants
  126.         Attrib_Point4   T0_Offset2  Hidden  0.0, 0.0, 0.0, 0.0
  127.         Attrib_Point4   T1_Offset2  Hidden  0.0, 0.0, 0.0, 0.0
  128.         Attrib_Point4   T2_Offset2  Hidden  0.0, 0.0, 0.0, 0.0
  129.         Attrib_Point4   T3_Offset2  Hidden  0.0, 0.0, 0.0, 0.0
  130.         Attrib_Point4   Weight02    Hidden  0.0, 0.0, 0.0, 0.0
  131.         Attrib_Point4   Weight12    Hidden  0.0, 0.0, 0.0, 0.0
  132.         Attrib_Point4   Weight22    Hidden  0.0, 0.0, 0.0, 0.0
  133.         Attrib_Point4   Weight32    Hidden  0.0, 0.0, 0.0, 0.0
  134.         // Pass 3 constants
  135.         Attrib_Point4   T0_Offset3  Hidden  0.0, 0.0, 0.0, 0.0
  136.         Attrib_Point4   T1_Offset3  Hidden  0.0, 0.0, 0.0, 0.0
  137.         Attrib_Point4   T2_Offset3  Hidden  0.0, 0.0, 0.0, 0.0
  138.         Attrib_Point4   T3_Offset3  Hidden  0.0, 0.0, 0.0, 0.0
  139.         Attrib_Point4   Weight03    Hidden  0.0, 0.0, 0.0, 0.0
  140.         Attrib_Point4   Weight13    Hidden  0.0, 0.0, 0.0, 0.0
  141.         Attrib_Point4   Weight23    Hidden  0.0, 0.0, 0.0, 0.0
  142.         Attrib_Point4   Weight33    Hidden  0.0, 0.0, 0.0, 0.0
  143.         // Pass 4 constants
  144.         Attrib_Point4   T0_Offset4  Hidden  0.0, 0.0, 0.0, 0.0
  145.         Attrib_Point4   T1_Offset4  Hidden  0.0, 0.0, 0.0, 0.0
  146.         Attrib_Point4   T2_Offset4  Hidden  0.0, 0.0, 0.0, 0.0
  147.         Attrib_Point4   T3_Offset4  Hidden  0.0, 0.0, 0.0, 0.0
  148.         Attrib_Point4   Weight04    Hidden  0.0, 0.0, 0.0, 0.0
  149.         Attrib_Point4   Weight14    Hidden  0.0, 0.0, 0.0, 0.0
  150.         Attrib_Point4   Weight24    Hidden  0.0, 0.0, 0.0, 0.0
  151.         Attrib_Point4   Weight34    Hidden  0.0, 0.0, 0.0, 0.0
  152.         // Pass 5 constants
  153.         Attrib_Point4   T0_Offset5  Hidden  0.0, 0.0, 0.0, 0.0
  154.         Attrib_Point4   T1_Offset5  Hidden  0.0, 0.0, 0.0, 0.0
  155.         Attrib_Point4   T2_Offset5  Hidden  0.0, 0.0, 0.0, 0.0
  156.         Attrib_Point4   T3_Offset5  Hidden  0.0, 0.0, 0.0, 0.0
  157.         Attrib_Point4   Weight05    Hidden  0.0, 0.0, 0.0, 0.0
  158.         Attrib_Point4   Weight15    Hidden  0.0, 0.0, 0.0, 0.0
  159.         Attrib_Point4   Weight25    Hidden  0.0, 0.0, 0.0, 0.0
  160.         Attrib_Point4   Weight35    Hidden  0.0, 0.0, 0.0, 0.0
  161.         // Pass 6 constants
  162.         Attrib_Point4   T0_Offset6  Hidden  0.0, 0.0, 0.0, 0.0
  163.         Attrib_Point4   T1_Offset6  Hidden  0.0, 0.0, 0.0, 0.0
  164.         Attrib_Point4   T2_Offset6  Hidden  0.0, 0.0, 0.0, 0.0
  165.         Attrib_Point4   T3_Offset6  Hidden  0.0, 0.0, 0.0, 0.0
  166.         Attrib_Point4   Weight06    Hidden  0.0, 0.0, 0.0, 0.0
  167.         Attrib_Point4   Weight16    Hidden  0.0, 0.0, 0.0, 0.0
  168.         Attrib_Point4   Weight26    Hidden  0.0, 0.0, 0.0, 0.0
  169.         Attrib_Point4   Weight36    Hidden  0.0, 0.0, 0.0, 0.0
  170.     }
  171.  
  172.     // Packing Definition
  173.     PackingDef PosTexCoord
  174.     {
  175.         PD_Stream   0
  176.             PDP_Position    0   PDT_Float3
  177.             PDP_TexCoord0   7   PDT_Float2
  178.     }
  179.     
  180.     // Implementation
  181.     Implementation Blur
  182.     {
  183.         "This implementation is intended for hardware 
  184.          that supports VS 1.1 and PS version 1.1"
  185.         
  186.         // Requirements for this implementation
  187.         Requirements
  188.         {
  189.             Platform            = DX8|DX9
  190.             VSVersion           = v1.1
  191.             UserVersion         = v0.0
  192.             PSVersion           = v1.1
  193.             UsesNiRenderState   = true
  194.         }
  195.         
  196.         // Packing Definition it uses
  197.         PackingDef  PosTexCoord
  198.  
  199.         // 'Global' render states
  200.         RenderStates
  201.         {
  202.             ZEnable             = false
  203.             ZWriteEnable        = false
  204.         Lighting            = false
  205.         }
  206.  
  207.         // First pass
  208.         Pass Blur0
  209.         {
  210.             RenderStates
  211.             {
  212.                 AlphaBlendEnable    = true
  213.             }
  214.  
  215.             // Vertex shader program
  216.             VSProgram   "TexCoord_4_Offset.vsh"
  217.  
  218.             // Vertex Shader constant map
  219.             VS_Constantmap
  220.             {
  221.                 CM_Defined      WorldViewProjTranspose  WorldViewProj    0
  222.                 CM_Global       T0_Offset0             -1   1
  223.                 CM_Global       T1_Offset0             -1   1
  224.                 CM_Global       T2_Offset0             -1   1
  225.                 CM_Global       T3_Offset0             -1   1
  226.                 CM_Global       Zero                   -1   1
  227.                 CM_Operator     T0_Offset               10  1   T0_Offset0 + Zero
  228.                 CM_Operator     T1_Offset               11  1   T1_Offset0 + Zero
  229.                 CM_Operator     T2_Offset               12  1   T2_Offset0 + Zero
  230.                 CM_Operator     T3_Offset               13  1   T3_Offset0 + Zero
  231.             }
  232.  
  233.             // Pixel shader program
  234.             PSProgram   "AddFourSamples.psh"
  235.  
  236.             // Pixel Shader constant map
  237.             PS_Constantmap
  238.             {
  239.                 CM_Global       Weight00               -1   1
  240.                 CM_Global       Weight10               -1   1
  241.                 CM_Global       Weight20               -1   1
  242.                 CM_Global       Weight30               -1   1
  243.                 CM_Global       Zero                   -1   1
  244.                 CM_Operator     Weight0                 0   1   Weight00 + Zero
  245.                 CM_Operator     Weight1                 1   1   Weight10 + Zero
  246.                 CM_Operator     Weight2                 2   1   Weight20 + Zero
  247.                 CM_Operator     Weight3                 3   1   Weight30 + Zero
  248.             }
  249.             
  250.             Sampler 0 Sampler0
  251.             {
  252.                 TSS_Texture     = NTM_Base
  253.  
  254.                 TSAMP_AddressU  = TADDR_Clamp
  255.                 TSAMP_AddressV  = TADDR_Clamp
  256.                 TSAMP_MagFilter = TEXF_Point
  257.                 TSAMP_MinFilter = TEXF_Point
  258.                 TSAMP_MipFilter = TEXF_Point
  259.             }
  260.  
  261.             Sampler 1 Sampler1
  262.             {
  263.                 TSS_Texture     = NTM_Base
  264.  
  265.                 TSAMP_AddressU  = TADDR_Clamp
  266.                 TSAMP_AddressV  = TADDR_Clamp
  267.                 TSAMP_MagFilter = TEXF_Point
  268.                 TSAMP_MinFilter = TEXF_Point
  269.                 TSAMP_MipFilter = TEXF_Point
  270.             }
  271.  
  272.             Sampler 2 Sampler2
  273.             {
  274.                 TSS_Texture     = NTM_Base
  275.  
  276.                 TSAMP_AddressU  = TADDR_Clamp
  277.                 TSAMP_AddressV  = TADDR_Clamp
  278.                 TSAMP_MagFilter = TEXF_Point
  279.                 TSAMP_MinFilter = TEXF_Point
  280.                 TSAMP_MipFilter = TEXF_Point
  281.             }
  282.  
  283.             Sampler 3 Sampler3
  284.             {
  285.                 TSS_Texture     = NTM_Base
  286.  
  287.                 TSAMP_AddressU  = TADDR_Clamp
  288.                 TSAMP_AddressV  = TADDR_Clamp
  289.                 TSAMP_MagFilter = TEXF_Point
  290.                 TSAMP_MinFilter = TEXF_Point
  291.                 TSAMP_MipFilter = TEXF_Point
  292.             }
  293.         }
  294.         // Second pass
  295.         Pass Blur1
  296.         {
  297.             RenderStates
  298.             {
  299.                 AlphaBlendEnable    = true
  300.                 SrcBlend            = ONE
  301.                 DestBlend           = ONE
  302.             }
  303.  
  304.             // Vertex shader program
  305.             VSProgram   "TexCoord_4_Offset.vsh"
  306.  
  307.             // Vertex Shader constant map
  308.             VS_Constantmap
  309.             {
  310.                 CM_Defined      WorldViewProjTranspose  WorldViewProj    0
  311.                 CM_Global       T0_Offset1             -1   1
  312.                 CM_Global       T1_Offset1             -1   1
  313.                 CM_Global       T2_Offset1             -1   1
  314.                 CM_Global       T3_Offset1             -1   1
  315.                 CM_Global       Zero                   -1   1
  316.                 CM_Operator     T0_Offset           10  1   T0_Offset1 + Zero
  317.                 CM_Operator     T1_Offset           11  1   T1_Offset1 + Zero
  318.                 CM_Operator     T2_Offset           12  1   T2_Offset1 + Zero
  319.                 CM_Operator     T3_Offset           13  1   T3_Offset1 + Zero
  320.             }
  321.  
  322.             // Pixel shader program
  323.             PSProgram   "AddFourSamples.psh"
  324.  
  325.             // Pixel Shader constant map
  326.             PS_Constantmap
  327.             {
  328.                 CM_Global       Weight01               -1   1
  329.                 CM_Global       Weight11               -1   1
  330.                 CM_Global       Weight21               -1   1
  331.                 CM_Global       Weight31               -1   1
  332.                 CM_Global       Zero                   -1   1
  333.                 CM_Operator     Weight0                 0   1   Weight01 + Zero
  334.                 CM_Operator     Weight1                 1   1   Weight11 + Zero
  335.                 CM_Operator     Weight2                 2   1   Weight21 + Zero
  336.                 CM_Operator     Weight3                 3   1   Weight31 + Zero
  337.             }
  338.             
  339.             Sampler 0 Sampler0
  340.             {
  341.                 TSS_Texture     = NTM_Base
  342.  
  343.                 TSAMP_AddressU  = TADDR_Clamp
  344.                 TSAMP_AddressV  = TADDR_Clamp
  345.                 TSAMP_MagFilter = TEXF_Point
  346.                 TSAMP_MinFilter = TEXF_Point
  347.                 TSAMP_MipFilter = TEXF_Point
  348.             }
  349.  
  350.             Sampler 1 Sampler1
  351.             {
  352.                 TSS_Texture     = NTM_Base
  353.  
  354.                 TSAMP_AddressU  = TADDR_Clamp
  355.                 TSAMP_AddressV  = TADDR_Clamp
  356.                 TSAMP_MagFilter = TEXF_Point
  357.                 TSAMP_MinFilter = TEXF_Point
  358.                 TSAMP_MipFilter = TEXF_Point
  359.             }
  360.  
  361.             Sampler 2 Sampler2
  362.             {
  363.                 TSS_Texture     = NTM_Base
  364.  
  365.                 TSAMP_AddressU  = TADDR_Clamp
  366.                 TSAMP_AddressV  = TADDR_Clamp
  367.                 TSAMP_MagFilter = TEXF_Point
  368.                 TSAMP_MinFilter = TEXF_Point
  369.                 TSAMP_MipFilter = TEXF_Point
  370.             }
  371.  
  372.             Sampler 3 Sampler3
  373.             {
  374.                 TSS_Texture     = NTM_Base
  375.  
  376.                 TSAMP_AddressU  = TADDR_Clamp
  377.                 TSAMP_AddressV  = TADDR_Clamp
  378.                 TSAMP_MagFilter = TEXF_Point
  379.                 TSAMP_MinFilter = TEXF_Point
  380.                 TSAMP_MipFilter = TEXF_Point
  381.             }
  382.         }
  383.     // Third pass
  384.         Pass Blur2
  385.         {
  386.             RenderStates
  387.             {
  388.                 AlphaBlendEnable    = true
  389.                 SrcBlend            = ONE
  390.                 DestBlend           = ONE
  391.             }
  392.  
  393.             // Vertex shader program
  394.             VSProgram   "TexCoord_4_Offset.vsh"
  395.  
  396.             // Vertex Shader constant map
  397.             VS_Constantmap
  398.             {
  399.                 CM_Defined      WorldViewProjTranspose  WorldViewProj    0
  400.                 CM_Global       T0_Offset2             -1   1
  401.                 CM_Global       T1_Offset2             -1   1
  402.                 CM_Global       T2_Offset2             -1   1
  403.                 CM_Global       T3_Offset2             -1   1
  404.                 CM_Global       Zero                   -1   1
  405.                 CM_Operator     T0_Offset           10  1   T0_Offset2 + Zero
  406.                 CM_Operator     T1_Offset           11  1   T1_Offset2 + Zero
  407.                 CM_Operator     T2_Offset           12  1   T2_Offset2 + Zero
  408.                 CM_Operator     T3_Offset           13  1   T3_Offset2 + Zero
  409.             }
  410.  
  411.             // Pixel shader program
  412.             PSProgram   "AddFourSamples.psh"
  413.  
  414.             // Pixel Shader constant map
  415.             PS_Constantmap
  416.             {
  417.                 CM_Global       Weight02               -1   1
  418.                 CM_Global       Weight12               -1   1
  419.                 CM_Global       Weight22               -1   1
  420.                 CM_Global       Weight32               -1   1
  421.                 CM_Global       Zero                   -1   1
  422.                 CM_Operator     Weight0                 0   1   Weight02 + Zero
  423.                 CM_Operator     Weight1                 1   1   Weight12 + Zero
  424.                 CM_Operator     Weight2                 2   1   Weight22 + Zero
  425.                 CM_Operator     Weight3                 3   1   Weight32 + Zero
  426.             }
  427.             
  428.             Sampler 0 Sampler0
  429.             {
  430.                 TSS_Texture     = NTM_Base
  431.  
  432.                 TSAMP_AddressU  = TADDR_Clamp
  433.                 TSAMP_AddressV  = TADDR_Clamp
  434.                 TSAMP_MagFilter = TEXF_Point
  435.                 TSAMP_MinFilter = TEXF_Point
  436.                 TSAMP_MipFilter = TEXF_Point
  437.             }
  438.  
  439.             Sampler 1 Sampler1
  440.             {
  441.                 TSS_Texture     = NTM_Base
  442.  
  443.                 TSAMP_AddressU  = TADDR_Clamp
  444.                 TSAMP_AddressV  = TADDR_Clamp
  445.                 TSAMP_MagFilter = TEXF_Point
  446.                 TSAMP_MinFilter = TEXF_Point
  447.                 TSAMP_MipFilter = TEXF_Point
  448.             }
  449.  
  450.             Sampler 2 Sampler2
  451.             {
  452.                 TSS_Texture     = NTM_Base
  453.  
  454.                 TSAMP_AddressU  = TADDR_Clamp
  455.                 TSAMP_AddressV  = TADDR_Clamp
  456.                 TSAMP_MagFilter = TEXF_Point
  457.                 TSAMP_MinFilter = TEXF_Point
  458.                 TSAMP_MipFilter = TEXF_Point
  459.             }
  460.  
  461.             Sampler 3 Sampler3
  462.             {
  463.                 TSS_Texture     = NTM_Base
  464.  
  465.                 TSAMP_AddressU  = TADDR_Clamp
  466.                 TSAMP_AddressV  = TADDR_Clamp
  467.                 TSAMP_MagFilter = TEXF_Point
  468.                 TSAMP_MinFilter = TEXF_Point
  469.                 TSAMP_MipFilter = TEXF_Point
  470.             }
  471.         }
  472.       // Fourth pass
  473.         Pass Blur3
  474.         {
  475.             RenderStates
  476.             {
  477.                 AlphaBlendEnable    = true
  478.                 SrcBlend            = ONE
  479.                 DestBlend           = ONE
  480.             }
  481.  
  482.             // Vertex shader program
  483.             VSProgram   "TexCoord_4_Offset.vsh"
  484.  
  485.             // Vertex Shader constant map
  486.             VS_Constantmap
  487.             {
  488.                 CM_Defined      WorldViewProjTranspose  WorldViewProj    0
  489.                 CM_Global       T0_Offset3             -1   1
  490.                 CM_Global       T1_Offset3             -1   1
  491.                 CM_Global       T2_Offset3             -1   1
  492.                 CM_Global       T3_Offset3             -1   1
  493.                 CM_Global       Zero                   -1   1
  494.                 CM_Operator     T0_Offset           10  1   T0_Offset3 + Zero
  495.                 CM_Operator     T1_Offset           11  1   T1_Offset3 + Zero
  496.                 CM_Operator     T2_Offset           12  1   T2_Offset3 + Zero
  497.                 CM_Operator     T3_Offset           13  1   T3_Offset3 + Zero
  498.             }
  499.  
  500.             // Pixel shader program
  501.             PSProgram   "AddFourSamples.psh"
  502.  
  503.             // Pixel Shader constant map
  504.             PS_Constantmap
  505.             {
  506.                 CM_Global       Weight03               -1   1
  507.                 CM_Global       Weight13               -1   1
  508.                 CM_Global       Weight23               -1   1
  509.                 CM_Global       Weight33               -1   1
  510.                 CM_Global       Zero                   -1   1
  511.                 CM_Operator     Weight0                 0   1   Weight03 + Zero
  512.                 CM_Operator     Weight1                 1   1   Weight13 + Zero
  513.                 CM_Operator     Weight2                 2   1   Weight23 + Zero
  514.                 CM_Operator     Weight3                 3   1   Weight33 + Zero
  515.             }
  516.             
  517.             Sampler 0 Sampler0
  518.             {
  519.                 TSS_Texture     = NTM_Base
  520.  
  521.                 TSAMP_AddressU  = TADDR_Clamp
  522.                 TSAMP_AddressV  = TADDR_Clamp
  523.                 TSAMP_MagFilter = TEXF_Point
  524.                 TSAMP_MinFilter = TEXF_Point
  525.                 TSAMP_MipFilter = TEXF_Point
  526.             }
  527.  
  528.             Sampler 1 Sampler1
  529.             {
  530.                 TSS_Texture     = NTM_Base
  531.  
  532.                 TSAMP_AddressU  = TADDR_Clamp
  533.                 TSAMP_AddressV  = TADDR_Clamp
  534.                 TSAMP_MagFilter = TEXF_Point
  535.                 TSAMP_MinFilter = TEXF_Point
  536.                 TSAMP_MipFilter = TEXF_Point
  537.             }
  538.  
  539.             Sampler 2 Sampler2
  540.             {
  541.                 TSS_Texture     = NTM_Base
  542.  
  543.                 TSAMP_AddressU  = TADDR_Clamp
  544.                 TSAMP_AddressV  = TADDR_Clamp
  545.                 TSAMP_MagFilter = TEXF_Point
  546.                 TSAMP_MinFilter = TEXF_Point
  547.                 TSAMP_MipFilter = TEXF_Point
  548.             }
  549.  
  550.             Sampler 3 Sampler3
  551.             {
  552.                 TSS_Texture     = NTM_Base
  553.  
  554.                 TSAMP_AddressU  = TADDR_Clamp
  555.                 TSAMP_AddressV  = TADDR_Clamp
  556.                 TSAMP_MagFilter = TEXF_Point
  557.                 TSAMP_MinFilter = TEXF_Point
  558.                 TSAMP_MipFilter = TEXF_Point
  559.             }
  560.         }
  561.       // Fifth pass
  562.         Pass Blur4
  563.         {
  564.             RenderStates
  565.             {
  566.                 AlphaBlendEnable    = true
  567.                 SrcBlend            = ONE
  568.                 DestBlend           = ONE
  569.             }
  570.  
  571.             // Vertex shader program
  572.             VSProgram   "TexCoord_4_Offset.vsh"
  573.  
  574.             // Vertex Shader constant map
  575.             VS_Constantmap
  576.             {
  577.                 CM_Defined      WorldViewProjTranspose  WorldViewProj    0
  578.                 CM_Global       T0_Offset4             -1   1
  579.                 CM_Global       T1_Offset4             -1   1
  580.                 CM_Global       T2_Offset4             -1   1
  581.                 CM_Global       T3_Offset4             -1   1
  582.                 CM_Global       Zero                   -1   1
  583.                 CM_Operator     T0_Offset           10  1   T0_Offset4 + Zero
  584.                 CM_Operator     T1_Offset           11  1   T1_Offset4 + Zero
  585.                 CM_Operator     T2_Offset           12  1   T2_Offset4 + Zero
  586.                 CM_Operator     T3_Offset           13  1   T3_Offset4 + Zero
  587.             }
  588.  
  589.             // Pixel shader program
  590.             PSProgram   "AddFourSamples.psh"
  591.  
  592.             // Pixel Shader constant map
  593.             PS_Constantmap
  594.             {
  595.                 CM_Global       Weight04               -1   1
  596.                 CM_Global       Weight14               -1   1
  597.                 CM_Global       Weight24               -1   1
  598.                 CM_Global       Weight34               -1   1
  599.                 CM_Global       Zero                   -1   1
  600.                 CM_Operator     Weight0                 0   1   Weight04 + Zero
  601.                 CM_Operator     Weight1                 1   1   Weight14 + Zero
  602.                 CM_Operator     Weight2                 2   1   Weight24 + Zero
  603.                 CM_Operator     Weight3                 3   1   Weight34 + Zero
  604.             }
  605.             
  606.             Sampler 0 Sampler0
  607.             {
  608.                 TSS_Texture     = NTM_Base
  609.  
  610.                 TSAMP_AddressU  = TADDR_Clamp
  611.                 TSAMP_AddressV  = TADDR_Clamp
  612.                 TSAMP_MagFilter = TEXF_Point
  613.                 TSAMP_MinFilter = TEXF_Point
  614.                 TSAMP_MipFilter = TEXF_Point
  615.             }
  616.  
  617.             Sampler 1 Sampler1
  618.             {
  619.                 TSS_Texture     = NTM_Base
  620.  
  621.                 TSAMP_AddressU  = TADDR_Clamp
  622.                 TSAMP_AddressV  = TADDR_Clamp
  623.                 TSAMP_MagFilter = TEXF_Point
  624.                 TSAMP_MinFilter = TEXF_Point
  625.                 TSAMP_MipFilter = TEXF_Point
  626.             }
  627.  
  628.             Sampler 2 Sampler2
  629.             {
  630.                 TSS_Texture     = NTM_Base
  631.  
  632.                 TSAMP_AddressU  = TADDR_Clamp
  633.                 TSAMP_AddressV  = TADDR_Clamp
  634.                 TSAMP_MagFilter = TEXF_Point
  635.                 TSAMP_MinFilter = TEXF_Point
  636.                 TSAMP_MipFilter = TEXF_Point
  637.             }
  638.  
  639.             Sampler 3 Sampler3
  640.             {
  641.                 TSS_Texture     = NTM_Base
  642.  
  643.                 TSAMP_AddressU  = TADDR_Clamp
  644.                 TSAMP_AddressV  = TADDR_Clamp
  645.                 TSAMP_MagFilter = TEXF_Point
  646.                 TSAMP_MinFilter = TEXF_Point
  647.                 TSAMP_MipFilter = TEXF_Point
  648.             }
  649.         }
  650.         // Sixth pass
  651.         Pass Blur5
  652.         {
  653.             RenderStates
  654.             {
  655.                 AlphaBlendEnable    = true
  656.                 SrcBlend            = ONE
  657.                 DestBlend           = ONE
  658.             }
  659.  
  660.             // Vertex shader program
  661.             VSProgram   "TexCoord_4_Offset.vsh"
  662.  
  663.             // Vertex Shader constant map
  664.             VS_Constantmap
  665.             {
  666.                 CM_Defined      WorldViewProjTranspose  WorldViewProj    0
  667.                 CM_Global       T0_Offset5             -1   1
  668.                 CM_Global       T1_Offset5             -1   1
  669.                 CM_Global       T2_Offset5             -1   1
  670.                 CM_Global       T3_Offset5             -1   1
  671.                 CM_Global       Zero                   -1   1
  672.                 CM_Operator     T0_Offset           10  1   T0_Offset5 + Zero
  673.                 CM_Operator     T1_Offset           11  1   T1_Offset5 + Zero
  674.                 CM_Operator     T2_Offset           12  1   T2_Offset5 + Zero
  675.                 CM_Operator     T3_Offset           13  1   T3_Offset5 + Zero
  676.             }
  677.  
  678.             // Pixel shader program
  679.             PSProgram   "AddFourSamples.psh"
  680.  
  681.             // Pixel Shader constant map
  682.             PS_Constantmap
  683.             {
  684.                 CM_Global       Weight05               -1   1
  685.                 CM_Global       Weight15               -1   1
  686.                 CM_Global       Weight25               -1   1
  687.                 CM_Global       Weight35               -1   1
  688.                 CM_Global       Zero                   -1   1
  689.                 CM_Operator     Weight0                 0   1   Weight05 + Zero
  690.                 CM_Operator     Weight1                 1   1   Weight15 + Zero
  691.                 CM_Operator     Weight2                 2   1   Weight25 + Zero
  692.                 CM_Operator     Weight3                 3   1   Weight35 + Zero
  693.             }
  694.             
  695.             Sampler 0 Sampler0
  696.             {
  697.                 TSS_Texture     = NTM_Base
  698.  
  699.                 TSAMP_AddressU  = TADDR_Clamp
  700.                 TSAMP_AddressV  = TADDR_Clamp
  701.                 TSAMP_MagFilter = TEXF_Point
  702.                 TSAMP_MinFilter = TEXF_Point
  703.                 TSAMP_MipFilter = TEXF_Point
  704.             }
  705.  
  706.             Sampler 1 Sampler1
  707.             {
  708.                 TSS_Texture     = NTM_Base
  709.  
  710.                 TSAMP_AddressU  = TADDR_Clamp
  711.                 TSAMP_AddressV  = TADDR_Clamp
  712.                 TSAMP_MagFilter = TEXF_Point
  713.                 TSAMP_MinFilter = TEXF_Point
  714.                 TSAMP_MipFilter = TEXF_Point
  715.             }
  716.  
  717.             Sampler 2 Sampler2
  718.             {
  719.                 TSS_Texture     = NTM_Base
  720.  
  721.                 TSAMP_AddressU  = TADDR_Clamp
  722.                 TSAMP_AddressV  = TADDR_Clamp
  723.                 TSAMP_MagFilter = TEXF_Point
  724.                 TSAMP_MinFilter = TEXF_Point
  725.                 TSAMP_MipFilter = TEXF_Point
  726.             }
  727.  
  728.             Sampler 3 Sampler3
  729.             {
  730.                 TSS_Texture     = NTM_Base
  731.  
  732.                 TSAMP_AddressU  = TADDR_Clamp
  733.                 TSAMP_AddressV  = TADDR_Clamp
  734.                 TSAMP_MagFilter = TEXF_Point
  735.                 TSAMP_MinFilter = TEXF_Point
  736.                 TSAMP_MipFilter = TEXF_Point
  737.             }
  738.         }
  739.         // Seventh pass
  740.         Pass Blur6
  741.         {
  742.             RenderStates
  743.             {
  744.                 AlphaBlendEnable    = true
  745.                 SrcBlend            = ONE
  746.                 DestBlend           = ONE
  747.             }
  748.  
  749.             // Vertex shader program
  750.             VSProgram   "TexCoord_4_Offset.vsh"
  751.  
  752.             // Vertex Shader constant map
  753.             VS_Constantmap
  754.             {
  755.                 CM_Defined      WorldViewProjTranspose  WorldViewProj    0
  756.                 CM_Global       T0_Offset6             -1   1
  757.                 CM_Global       T1_Offset6             -1   1
  758.                 CM_Global       T2_Offset6             -1   1
  759.                 CM_Global       T3_Offset6             -1   1
  760.                 CM_Global       Zero                   -1   1
  761.                 CM_Operator     T0_Offset           10  1   T0_Offset6 + Zero
  762.                 CM_Operator     T1_Offset           11  1   T1_Offset6 + Zero
  763.                 CM_Operator     T2_Offset           12  1   T2_Offset6 + Zero
  764.                 CM_Operator     T3_Offset           13  1   T3_Offset6 + Zero
  765.             }
  766.  
  767.             // Pixel shader program
  768.             PSProgram   "AddFourSamples.psh"
  769.  
  770.             // Pixel Shader constant map
  771.             PS_Constantmap
  772.             {
  773.                 CM_Global       Weight06               -1   1
  774.                 CM_Global       Weight16               -1   1
  775.                 CM_Global       Weight26               -1   1
  776.                 CM_Global       Weight36               -1   1
  777.                 CM_Global       Zero                   -1   1
  778.                 CM_Operator     Weight0                 0   1   Weight06 + Zero
  779.                 CM_Operator     Weight1                 1   1   Weight16 + Zero
  780.                 CM_Operator     Weight2                 2   1   Weight26 + Zero
  781.                 CM_Operator     Weight3                 3   1   Weight36 + Zero
  782.             }
  783.             
  784.             Sampler 0 Sampler0
  785.             {
  786.                 TSS_Texture     = NTM_Base
  787.  
  788.                 TSAMP_AddressU  = TADDR_Clamp
  789.                 TSAMP_AddressV  = TADDR_Clamp
  790.                 TSAMP_MagFilter = TEXF_Point
  791.                 TSAMP_MinFilter = TEXF_Point
  792.                 TSAMP_MipFilter = TEXF_Point
  793.             }
  794.  
  795.             Sampler 1 Sampler1
  796.             {
  797.                 TSS_Texture     = NTM_Base
  798.  
  799.                 TSAMP_AddressU  = TADDR_Clamp
  800.                 TSAMP_AddressV  = TADDR_Clamp
  801.                 TSAMP_MagFilter = TEXF_Point
  802.                 TSAMP_MinFilter = TEXF_Point
  803.                 TSAMP_MipFilter = TEXF_Point
  804.             }
  805.  
  806.             Sampler 2 Sampler2
  807.             {
  808.                 TSS_Texture     = NTM_Base
  809.  
  810.                 TSAMP_AddressU  = TADDR_Clamp
  811.                 TSAMP_AddressV  = TADDR_Clamp
  812.                 TSAMP_MagFilter = TEXF_Point
  813.                 TSAMP_MinFilter = TEXF_Point
  814.                 TSAMP_MipFilter = TEXF_Point
  815.             }
  816.  
  817.             Sampler 3 Sampler3
  818.             {
  819.                 TSS_Texture     = NTM_Base
  820.  
  821.                 TSAMP_AddressU  = TADDR_Clamp
  822.                 TSAMP_AddressV  = TADDR_Clamp
  823.                 TSAMP_MagFilter = TEXF_Point
  824.                 TSAMP_MinFilter = TEXF_Point
  825.                 TSAMP_MipFilter = TEXF_Point
  826.             }
  827.         }
  828.  
  829.     }
  830. }
  831.